LMD-Tools ReadMe (6.12)


Date: 22-Sep-2002
(© by LMD Innovative, (
http://www.lmd.de or http://www.lmdtools.com)

 

Contents

General
Installation Delphi / C++ Builder
Components Overview (complete)

Components Overview (New in LMD-Tools 6.0)
Updating existing projects created with LMD-Tools 4.X or former versions 
Updating existing projects created with ShellPack 1.0 / RichPack 1.0
LMD ParsePack/TextPack HTML-Support
Redistributable Packages
History
Troubleshooting Notes
Reporting Problems & Newsgroups



General

Welcome to version 6 of LMD-Tools. The latest release of this component suite provides more than 300 components, besides that many existing components were improved or new objects added. Please read the History list to get a brief overview about latest changes. 

Please use the new feedback form at www.lmdsupport.com or newsgroups at news.lmdtools.com for suggestions or bug reports. Please make sure that you provide ALL required information listed in Reporting Problems section. Otherwise it could be very time-intensive trying to reproduce your problem, because sometimes problems occur on one of the various possible platforms only.

WebPack
Compiled version of WebPack uses WinInet interface. The sourcecode version provides compiler switches to allow versions based on Indy 8 or 9. Check Source ReadMe for instructions how to change compiler switches in
lmdwebcmps.inc.

C++ Builder Versions - Please read!
ShellPack and WebPack require special header files, which must be added manually. TextPack and WebPack components require ParsePack LibPath (add path to ParsePack files in the project options). Check Troubleshooting notes for description.


Location of support files
If helpfiles were  installed automatically you can use them in the IDE as known from the Delphi/CBuilder helpfiles. Otherwise all helpfiles can be found in the
\help folder below the LMD-Tools installation directory. All information files can be found in the \info directory. Interface files can be found in the \source directory (if installation of interface files was switched on in Installer).
[Top]

 

Updating existing projects created with LMD-Tools V4.X or former versions

Delphi 
In spite of drasting changes in the unit structure updating your projects to the new version should be rather straight forward: User of previous LMD-Tools releases have to load and save each form of their project. The easiest way to do this is to press F9 (compile) until the project starts. The IDE will detect missing unit references and add them automatically. In the worst case additional units must be added manually to the uses clause of an unit (if type or method was moved to another unit, which is not added by the Delphi IDE automatically). If you get an unknown identifier, error simply check the helpfile where the corresponding type/method is now located and add the unit to the uses clause.

CBuilder
In spite of drasting changes in the unit structure updating your projects to the new version should be rather straight forward (though a little bit more work than with Delphi versions): User of previous LMD-Tools releases have to load and save each form of their project. The easiest way to do this is to press F9 (compile) until the project starts. The CBuilder IDE will detect missing unit references and add them automatically. In the worst case additional units must be added manually to the uses clause of an unit (if type or method was moved to another unit, which is not added by the CBuilder IDE automatically). If you get an unknown identifier, error simply check the helpfile where the corresponding type/method is now located and add the unit to the uses clause. In addition to Delphi projects a few includes in the header file of an unit must be removed manually. The following files are no longer used in CBuilder versions of LMD-Tools 5 and can be simply removed from your project:

lmdmms.hpp, lmdcctrl.hpp, lmdcombo.hpp, lmdcompo.hpp, lmdcompo.hpp, lmddbcta.hpp, lmdeditb.hpp, Lmdeditc.hpp, lmdeditm.hpp, lmdgroup.hpp, LMDMemoC.hpp, lmdrctrl.hpp, lmdextca.hpp, lmdextcs.hpp, lmdnonvs.hpp, lmdshapa.hpp, lmdstdcS.hpp, lmdctrla.hpp, lmddlgs.hpp, lmdbredt.hpp
[Top]


Updating existing projects created with ShellPack 1.0 / RichPack 1.0

Both ShellPack and RichPack packages were drastically changed. Especially Shellpack controls need manual adaption of code, because internal structure was extremly improved to a much better objecte oriented design. Before you update any projects to the new version, please backup them.

ShellPack
ShellPack changes affect usually mainly main components (TLMDShellFolder, TLMDShellTree, TLMDShellList and TLMDShellComboBox). Dialog components remained almost unchanged, except that ExecuteEnh method was removed and replaced by the Execute method alone (which supports optional HWND parameter now).

Form and Units
All major components moved to new units (
lmdshfolder.pas, lmdshtree.pas, lmdshlist.pas, and lmdshcombo.pas). To update uses clause load and save each form of the project  The IDE will detect missing unit references and add them automatically. If property settings were not found after loading the form, simply press "Ignore all". Before you can start project IDE will show up not found units like lmdshctl.pas, lmdshiedlg, lmdshitm or lmdshfld.pas. Simply remy remove these unit references, these files are no longer required.

Manual code changes
The main class of ShellPack 1 to access single items was
TLMDShellFolderItem. Because it was obviously not very easy to understand how this object worked, this class was completely redesigned and is now called TLMDShellItem. Use this base class to request all important data from a file system object, regardless of which kind it is. To get access to individial items for each main visual class a wrapper class exists (TLMDShellListItem, TLMDShellTreeItem, TLMDShellComboItem), which allows access to all properties and methods of TLMDShellItem by their ShellItem property. Examples:

TLMDShellList
if Assigned(shList.Selected) then
  Showmessage(TLMDShellListItem(shList.Selected).ShellItem.PathName));
TLMDShellTree
if Assigned(shTree.Selected) then
  Showmessage(TLMDShellTreeItem(shTree.Selected).ShellItem.PathName));

In both cases the full PathName of the selected object is displayed. Please note how the Selected object (a default property of TListView and TTreeView) is typecasted to TLMDShellListItem or TLMDShellTreeItem.

Note:

To make full use of ShellPack 2.0 on Win95 systems, the common controls update needs to be installed on the target system. ShelLPack 2.0 requires at least the common controls update which was shipped with Internet Explorer 4.0. The common control update is a freely distributable and can be found on your Delphi/CBuilder CD in the
Info\Extras\Comctl folder.

Note (C++ Builder only):
If your application uses ShellPack components, the following line must be added in one of the units which contain ShellPack components (e.g. main unit of your application):

#include <LMDShellBCBSupport.hpp>

If this header file is not included, an E2076 linker error will be generated.


RichPack
Main changes affect the TLMDRichEdit class. E.g. the Selection property was removed and replaced by a SeAttributes object. On customer request our proprietary interface was changed much more common interface, e.g. Paragraph object was designed based on the VCL TParagraph definition extending the functionality with the unique LMDRichEdit features.

Form and Units
All major components moved to new units. To update uses clause load and save each form of the project  The IDE will detect missing unit references and add them automatically. If property settings were not found after loading the form, simply press "Ignore all". Before you can start project IDE will show up not found units. Simply remove these unit references, these files are no longer required.

Note:
If no default printer is installed on the system, start of applications using RichLabel components will be delayed.


Note (C++ Builder only):

After recompiling LMD RichPack packages, you might receive errors regarding
CHARFORMAT2A types if you want to start an application using TLMDRichEdit components. Workaround: Simply enter in the header files Richedit:: before CHARFORMAT2A types (where compiler requires this, usually about three times). Example:
Change line...
void __fastcall GetAttributes(CHARFORMAT2A &Format);     
..to...
void __fastcall GetAttributes(Richedit::CHARFORMAT2A &Format);
[Top]


© 2002 by LMD Innovative Germany
All other trademarks are acknowledged.